GNU 通用公共许可证

一九九一年六月 第二版

(原文出处: http://www.gnu.org/copyleft/gpl.html)

版权所有 (C) 1989,1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

允许每个人复制和发布这一许可证原始文件的副本,
绝对不允许对它进行任何修改。

声明

This is an unofficial translation of the GNU General Public License into Chinese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Chinese speakers understand the GNU GPL better.

这是一份 GNU 通用公共许可证非正式的中文翻译。它不是自由软体基金会所发布,并且不能适用於使用 GNU GPL 的软体 —— 只有 GNU GPL 英文原文的版本才行。然而,我们希望这份翻译能帮助中文的使用者更了解 GNU GPL。

序言

 大多数软体许可证的用意在於剥夺您共享和修改软体的自由。相反的,GNU 通用公共许可证力图保证您共享和修改自由软体的自由 —— 保证自由软体对所有使用者都是自由的。GNU GPL 适用於大多数自由软体基金会的软体,以及任何因信任而采用 GNU GPL 的作者所开发的软体。(有些自由软体基金会软体受 GNU 函式库通用许可证的保护)。您也可以将它用到您的程式中。

 当我们谈到自由软体 (free software) 时,我们指的是自由而不是价格。我们把 GNU 通用公共许可证设计成您的保障,让您保有发布自由软体的自由(您可以自由决定是否要对此项服务收取费用);确保您能收到程式原始码或者在您需要时能得到它;确保您能修改软体或将它的一部分用於新的自由软体;而且还确保您知道您拥有这些权利。

 为了保护您的权利,我们需要作出规定:禁止任何人剥夺您的权利,或者要求您放弃这些权利。如果您修改了自由软体或者发布了软体的副本,这些规定就转化为您的责任。

 例如,如果您发布这样一个程式的副本,不管是免费的还是收费的,您必须将您具有的一切权利给予您的接受者;您必须确认他们能收到或得到原始程式码;并且将这些条款给他们看,使他们知道他们有这样的权利。

 我们采取两项措施来保护您的权利:

  1. 用版权来保护软体。
  2. 提供您许可证,赋予您复制,发布和修改这些软体的法律许可。

 同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软体没有担保 (no warranty)。如果由於某人修改了软体,并继续加以传播,我们需要它的接受者明白:他们所得到的并不是原来的自由软体。由其他人引入的任何问题,不应损害原作者的声誉。

 最後,由於任何自由软体不断受到软体专利的威胁,故我们希望避免这样的风险。如果自由软体的再发布者以个人名义获得专利许可证,也就等同将软体变为私有。为防止这一点,我们必须明确声明: 任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。

 下面是有关复制、发布和修改的确切的条款和条件。

GNU 通用公共许可证
有关复制,发布和修改的条款和条件

0. 凡是版权所有者在其程式和作品中声明其程式和作品可以在 GNU GPL 条款的约束下发布,这样的程式或作品都受到本许可证约束。下面提到的 "程式" 指的是任何这样的程式或作品。而 "程式的衍生作品" 指的是这样的程式或者版权法认定下的衍生作品,也就是说包含此程式或程式的一部分的套件,可以是原封不动的,或经过修改的,和/或翻译成其他语言的 (程式)。(在下文中,"修改" 一词的涵义一律包含翻译作品。) 每个许可证接受人 (licensee) 用 "您" 来称呼。

 本许可证条款不适用於复制,发布和修改以外的行为。这些行为超出这些条款的□围。执行本程式的行为不受条款的限制。而程式的输出只有在其内容构成本程式的衍生作品 (并非只是因为该输出由本程式所产生) 时,这一条款才适用。至於程式的输出内容是否构成本程式的衍生作品,则取决於程式具体的用途。

1. 只要您在每一程式副本上明显和恰当地宣告版权声明和不承担担保的声明,并原封不动保持此许可证的声明和没有担保的声明,并将此许可证连同程式一起给其他每位程式接受者,您就可以用任何媒体复制和发布您收到的程式的原始码。

 您可以为转让副本的实际行动收取一定费用。您也可以自由决定是否以提供担保来换取一定的费用。

2. 您可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。只要您同时满足下面的所有条件,您就可以按前面第一款的要求复制和发布这一经过修改的程式或作品。

  1. 您必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。

  2. 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。

  3. 如果修改的程式在执行时以交谈方式读取命令,您必须使它在开始进入一般的交谈使用方式时列印或显示声明:包括适当的版权声明和没有担保的声明(或者您提供担保的声明);使用者可以按此许可证条款重新发布程式的声明;并告诉使用者如何看到这一许可证的副本。 (例外的情况:如果原始程式以交谈方式工作,但它通常并不列印这样的声明,那麽您基於此程式的作品也就不用列印声明)。

 这些要求适用於整个修改过的作品。如果能够确定作品的一部分并非本程式的衍生产品,且可以合理地单独考虑并将它与原作品分开的话,则当您将它作为独立的作品发布时,它不受此许可证和其条款的约束。但是当您将这部分与基於本程式的作品一同发布时,则整个套件将受到本许可证条款约束,因为本许可证对於其他许可证持有人的授权扩大到整个产品,也就是套件的每个部分,不管它是谁写的。

 因此,本条款的意图不在於剥夺您对完全由您自身完成作品的权利,而是履行权利来控制基於本程式的集体作品或衍生作品的发布。

 此外,将与本程式无关的作品和本程式 (或本程式的衍生作品) 一起放在贮存媒体或发布媒体的同一卷上,并不导致将其他作品置於此许可证的约束□围之 内。

3. 您可以以目标码或可执行形式复制或发布程式 (或符合第 2 款,本程式的衍生作品),只要您遵守前面的第 1、2 款,并同时满足下列三条中的任一条。

  1. 在通常用作软体交换的媒体上,和目标码一起附有机器可读的完整的本程式原始码。这些原始码的发布应符合上面第 1,2 款的要求。或者

  2. 在通常用作软体交换的媒体上,和目标码一起,附上书面报价,提供替第三方复制原始码的服务。该书面报价有效期不得少於 3 年,费用不得超过完成原程式发布的实际成本,原始码的发布应符合上面的第 1,2 款的要求。或者

  3. 和目标码一起,附有您收到的发布原码的报价信息。 (这一条款只适用於非商业性发布,而且您只收到程式的目标码或可执行码,和按 b 款要求提供的报价)

 作品的原始码指的是对作品进行修改最优先择取的形式。对可执行的作品而言,完整的原始码套件包括:所有模组的所有原始程式,加上有关的介面的定义,加上控制可执行作品的安装和编译的 script。至於那些通常伴随著执行本程式所需的作业系统元件 (如编译器、核心等) 而发布的软体 (不论是原始码或可执行码),则不在本许可证要求以程式原始码形式伴随发布之列,除非它是本程式的一部分。

 如果可执行码或目标码是以指定复制地点的方式来发布,那麽在同一地点提供等价的原始码复制服务也可以算作原始码的发布,然而第三方并不需因此而负有必与目标码一起复制原始码的义务。

4. 除了本许可证明白声明的方式之外, 您不能复制,修改,转发许可证和发布程式。任何试图用其他方式复制,修改,转发许可证和发布程式是无效的,而且将自动结束许可证赋予您的权利。然而,对那些从您那里按许可证条款得到副本和权利的人们,只要他们继续全面履行条款,许可证赋予他们的权利仍然有效。

5. 您没有在许可证上签字,因而您没有必要一定接受此一许可证。然而,没有任何其他东西赋予您修改和发布程式及其衍生作品的权利。如果您不接受许可证,这些行为是法律禁止的。因此,如果您修改或发布程式 (或本程式的衍生作品) ,您就表明您接受这一许可证以及它的所有有关复制、发布和修改程式或基於程式的作品的条款和条件。

6. 每当您重新发布程式 (或任何程式的衍生作品) 时,接受者自动从原始许可证颁发者那里接到受这些条款和条件支配的复制、发布或修改本程式的许可。您不可以增加任何条款来进一步限制本许可证赋予他们的权利。您也没有强求第三方履行许可证条款的义务。

7. 如果由於法院判决或违反专利的指控或任何其他原因 (不限於专利问题) 的结果,使得强加於您的条件 (不管是法院判决,协议或其他) 和许可证的条件有冲突时,他们也不能令您背离许可证的条款。在您不能同时满足本许可证规定的义务及其他相关的义务来发布程式时,则结果您只能够根本不发布程式。例如,如果某一专利许可证不允许所有直接或间接从您那里接受副本的人们,在不付专利费的情况下重新发布程式,唯一能同时满足两方面要求的办法是停止发布程式。

 如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其馀部分,并将这部分条款作为整体用於其他环境。

 本条款的目的不在於引诱您侵犯专利或其他财产权的要求,或争论这种要求的有效性。本条款的主要目的在於保护自由软体发布系统的完整性。它是通过公共许可证的应用来实现的。许多人已依赖同是出自此系统的应用程式,经由此系统发布大量自由软体而做出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软体,许可证接受者不能强迫作者/捐献者做某种特定的选择。

 我们相信许可证其他部分已涵盖本节所述状况,本节目的只在更明确说明许可证其馀部分可能产生的结果。

8. 如果由於专利或者由於有版权的介面问题使程式在某些国家的发布和使用受到限制,则以本许可证发布程式的原始作者可以增加发布地区的限制条款,将这些国家明确排除在外,并在这些国家以外的地区发布程式。在这种情况下,这些限制条款如同写入本许可证一样,成为许可证的条款。

9. 自由软体基金会可能随时出版通用公共许可证的修改版或新版。新版和当前的版本在精神上保持一致,但在细节上可能有出入,以处理新的问题与状况。

 每一版本都有不同的版本号。如果程式指定可适用的许可证版本号以及 "任何更新的版本" ,您有权选择遵循指定的版本或自由软体基金会以後出版的新版本。如果程式未指定许可证版本,您可选择自由软体基金会已经出版的任何版本。

10. 如果您愿意将程式的一部分结合到其他自由程式中,而它们的发布条件不同,请写信给作者,要求准予使用。如果是自由软体基金会加以版权保护的软体,请写信给自由软体基金会,我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导,这两个主要目标是:我们的自由软体的衍生作品继续保持自由状态,以及从整体上促进软体的共享和重复利用。

没有担保

11. 由於程式准予免费使用,在适用法准许的□围内,对程式没有担保。除非另有书面说明,版权所有者和/或其他提供程式的人们 "一样" 不提供任何类型的担保,不论是明确的,还是隐含的,包括但不限於可销售和适合特定用途的隐含保证。全部的风险,如程式的质量和性能问题都由您来承担。如果程式出现缺陷,您应当承担所有必要的服务、修复和改正的费用。

12. 除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许可证条款修改和发布程式的人们都不对您的损失负有任何责任。包括由於使用或不能使用程式引起的任何一般的、特殊的、偶然发生的或重大的损失 (包括但不限於数据的损失,或者数据变得不精确,或者您或第三方的持续的损失,或者程式不能和其他程式协调运行等) 。即使版权所有者和其他人已被告知这种损失的可能性也不例外。

条款结束

(译注: 以下不是法律条文, 只是要教一般的程式设计师如何使用 GNU GPL)

如何将这些条款用到您的新程式

 如果您开发了新程式,而且您需要它得到公众最大限度的利用,要做到这一点的最好办法是将它施以 GNU GPL,使得每个人都能循此条款来修改和重新发布你写的软体。

 为了做到这一点,请将程式附上下列声明。最安全的方式是将它放在每个原始码档案的开头,以便最有效地传递没有担保的信息。每个文件至少应有 "版权所有" 行以及在什麽地方能看到声明全文的说明。

用一行空间描述程式的名称和它的用途
版权所有 (C) 19XX 作者姓名

 本程式是自由软体,您可以遵照自由软体基金会 (Free Software Foundation) 出版的 GNU 通用公共许可证条款 (GNU General Public License) 第二版来修改和重新发布这一程式,或者自由选择使用任何更新的版本。

 发布这一程式的目的是希望它有用,但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 通用公共许可证。

 您应该已经和程式一起收到一份 GNU 通用公共许可证的副本。如果还没有,写信给:

Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

 此外还应加上如何和您保持联系的信息。

 如果程式以交谈方式进行工作,当它开始进入交互方式工作时,应输出类似下面的简短声明:

Gnomovision 第 69 版,版权所有 (C) 19XX作者姓名, Gnomovision 绝对没有担保。要知道详细情况,请输入 "show w"。 这是自由软体,欢迎您遵守一定的条件重新发布它,要知道详细情况, 请输入 "show c"
 假设的命令 "show w""show c" 应显示通用公共许可证的相应条款。当然,您使用的命令名称可以不同於 "show w""show c" 。根据您的程式的具体情况,也可以用选单或滑鼠来显示这些条款。

 如果需要,您应该取得您的上司 (如果您是程式员) 或您的学校签署放弃程式版权的声明。下面只是一个例子,您应该改变相应的名称:

Yoyodyne 公司以此方式放弃 James Hacker 所写的 Gnomovision 程式的全部版权利益。

Ty coon 签名,1989.4.1 Ty coon 副总裁

 这一许可证不允许您将程式并入私有程式。如果您的程式是一个子函式库。您可能会认为让它和私有的应用程式连接会更有用。如果您想这麽做,请使用 GNU 函式库通用公共许可证代替本许可证。
CLDP 译注

本文的原始翻译者已不可考(如果有人知道,请告诉我)。 译文经过下列人士的修改与润饰(依先後顺序):